package com.headfirst.CreateMode.factory.simplefactory;


/**
 * 制作Pizza的一个简单工厂，当Pizza商店收到Pizza订单时，就需要这个工厂根据Pizza类型制作出不同种类的Pizza
 * @author sunhongguang
 * @create 2022-01-23-18:25
 */
public class SimplePizzaFactory {

    /**
     * 真正制作具体Pizza的地方，根据顾客购买的Pizza类型，制作不同风味的Pizza
     * @param type  披萨的类型
     * @return 指定类型的Pizza
     */
    public static Pizza createPizza(String type){
        
        // 如果顾问在下订单的时候，没有选择Pizza口味，那么就会给顾客制作一份经典原味Pizza
        if(type == null){
            return new OriginalFlavorPizza();
        }
        
        Pizza pizza = null;
        switch (type) {
            case "cheese":
                pizza = new CheesePizza();
                break;
            case "pepperoni":
                pizza = new PepperoniPizza();
                break;
            case "clam":
                pizza = new ClamPizza();
                break;
            case "veggie":
                pizza = new VeggiePizza();
                break;
            case "original":
                pizza = new OriginalFlavorPizza();
                break;
        }
        return pizza;
    }
}
